package model.v2.conf;

import annotation.ShowInfo;
import com.google.gson.annotations.Expose;
import model.MibNode;

import java.util.List;
import java.util.Map;

public class MibAgentCapabilitesNodeV2 extends MibNode {
    public class Module{
        public class Variation{
            public class DefValPart{
                @Expose
                public String defvalue;
                @Expose
                public List<String> bitsValue;
            }

            public class NamedBit {
                @Expose
                public String identifier;
                @Expose
                public int number;

                public NamedBit(String identifier, int number) {
                    this.identifier = identifier;
                    this.number = number;
                }
            }

            @Expose
            public String type;
            @Expose
            public String variation;
            @Expose
            public String syntax;
            @Expose
            public String writeSyntax;
            @Expose
            public List<NamedBit> nameBits;
            @Expose
            public String access;
            @Expose
            public List<String> creationRequires;
            @Expose
            public DefValPart defValPart;
        }

        @Expose
        public Map<String, String> supports;
        @Expose
        public List<String> groups;
        @Expose
        public List<Variation> Variations;
    }

    @Expose
    public String productRelease;
    @Expose
    @ShowInfo(name = "状态")
    public String status;
    @Expose
    public String reference;
    @Expose
    public List<Module> modules;
}
